﻿/// <remarks>
///系统名称            :   ITALKI 翻译系统
///模块名称            :   Translate
///文件代码            :   
///功能概述            :   
///创建人              :   Snail
///创建日期            :   2008.08.07
///版本号              :   1.0.0.0
///----------< 修改履历 >---------------------------------------------------------------
///修改日期          修改人              修改内容                           版本号
///------------------------------------------------------------------------------------
/// (C) 2007-2008 上海微语信息技术有限公司  版权所有。保留所有权利。
///------------------------------------------------------------------------------------
///</remarks>

using System.Collections;
using System.Collections.Generic;
using System.Web.Services;
using BLL.WWW_WWW.translate;
using Model.WWW_WWW.translate;

namespace WebServices.WWW
{
    /// <summary>
    /// Translate WebServices
    /// </summary>
    [WebService(Namespace = "http://www.italki.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]
    public class Translate : WebService
    {
        /// <summary>
        /// 添加一个翻译成员。
        /// </summary>
        /// <param name="memberNo">会员编号。</param>
        /// <param name="isAdmin">是否管理员身份。</param>
        /// <returns>返回受影响的行数。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public int AddTranslateMember(string memberNo, bool isAdmin) {
            return new TranslateSystem().AddTranslateMember(memberNo, isAdmin);
        }

        /// <summary>
        /// 获得一个翻译成员。
        /// </summary>
        /// <param name="memberNo">会员编号。</param>
        /// <returns>TranslateMember对象。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public TranslateMember GetTranslateMember(string memberNo) {
            return new TranslateSystem().GetTranslateMember(memberNo);
        }

        /// <summary>
        /// 添加一个待翻译的条目。
        /// </summary>
        /// <param name="itemNo">条目编号。</param>
        /// <param name="itemText">带翻译的文本。</param>
        /// <returns>返回受影响的行数。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public int AddTranslateItem(string itemNo, string itemText) {
            return new TranslateSystem().AddTranslateItem(itemNo, itemText);
        }


        /// <summary>
        /// 翻译一个条目。
        /// </summary>
        /// <param name="itemNo">条目编号。</param>
        /// <param name="itemText">翻译后的内容。</param>
        /// <param name="targetLang">翻译成的语言。</param>
        /// <param name="feedback">反馈分数。</param>
        /// <param name="isGoodFlag">最佳标记。</param>
        /// <param name="memberNo">翻译人员会员编号。</param>
        /// <returns>返回受影响的行数。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public int AddTranslateContent(string itemNo, string itemText, string targetLang, int feedback,
                                                bool isGoodFlag, string memberNo) {
            return new TranslateSystem().AddTranslateContent(itemNo, itemText, targetLang, feedback, isGoodFlag, memberNo);
        }

        /// <summary>
        /// 发表对一个翻译条目的评论。
        /// </summary>
        /// <param name="itemNo">条目编号。</param>
        /// <param name="targetLang">翻译后的语言。</param>
        /// <param name="comment">评论内容。</param>
        /// <param name="memberNo">评论者会员编号。</param>
        /// <returns>返回受影响的行数。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public int AddTranslateContentComment(string itemNo, string targetLang, string comment, string memberNo) {
            return new TranslateSystem().AddTranslateContentComment(itemNo, targetLang, comment, memberNo);
        }



        /// <summary>
        /// 根据条目编号获得该翻译条目对象以及制定语言的所有翻译内容。
        /// </summary>
        /// <param name="itemNo">条目编号。</param>
        /// <param name="targetLang">翻译成的语言。</param>
        /// <param name="pageIndex">翻译内容开始的索引。</param>
        /// <param name="pageSize">本次选择翻译内容的条数。</param>
        /// <param name="contentList">翻译内容列表。</param>
        /// <param name="recordCount">总条数。</param>
        /// <returns>TranslateItem对象。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public TranslateItem GetTranslatesByLanguage(string itemNo, string targetLang, int pageIndex, int pageSize, out List<TranslateModel> contentList, out int recordCount) {
            return new TranslateSystem().GetTranslatesByLanguage(itemNo, targetLang, pageIndex, pageSize, out contentList, out recordCount);
        }

        /// <summary>
        /// 随机选择一个翻译条目。
        /// </summary>
        /// <param name="targetLang">翻译成的语言。</param>
        /// <param name="contentList">翻译内容集合。</param>
        /// <param name="commentList">评论集合。</param>
        /// <param name="contentCount">翻译内容总条数。</param>
        /// <returns>TranslateItem对象。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public TranslateItem GetTranslateRandom(string targetLang, out List<TranslateModel> contentList, out List<TranslateComment> commentList, out int contentCount) {
            return new TranslateSystem().GetTranslateRandom(targetLang, out contentList, out commentList, out contentCount);
        }


        /// <summary>
        /// 获得指定会员的所有翻译内容。
        /// </summary>
        /// <param name="memberNo">会员编号。</param>
        /// <param name="pageIndex">开始选择的索引。</param>
        /// <param name="pageSize">本次选择的条数。</param>
        /// <param name="contentCount">翻译内容总条数。</param>
        /// <returns>TranslateModel对象的集合。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public List<TranslateModel> GetTranslatesByMember(string memberNo, int pageIndex, int pageSize, out int contentCount) {
            return new TranslateSystem().GetTranslatesByMember(memberNo, pageIndex, pageSize, out contentCount);
        }

        /// <summary>
        /// 为指定的翻译内容评分。
        /// </summary>
        /// <param name="contentID">翻译内容编号。</param>
        /// <param name="value">增加分值。</param>
        /// <param name="memberNo">评分人ID。</param>
        /// <returns>目前分数。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public int AddFeedback(int contentID, int value, string memberNo) {
            return new TranslateSystem().AddFeedback(contentID, value, memberNo);
        }


        /// <summary>
        /// 获得会员翻译分数排行榜。
        /// </summary>
        /// <param name="topN">前N名。</param>
        /// <param name="pageIndex">开始选择的索引。</param>
        /// <param name="pageSize">本次选择的条数。</param>
        /// <returns>TranslateModel集合。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public List<TranslateTopic> GetTopMembers(int topN, int pageIndex, int pageSize) {
            return new TranslateSystem().GetTopMembers(topN, pageIndex, pageSize);
        }


        /// <summary>
        /// 获得最近n天的每天翻译内容新增条目数量。
        /// </summary>
        /// <param name="days">最近n天。</param>
        /// <returns>int[]</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public ArrayList GetNewCount(int days) {
            return new TranslateSystem().GetNewCount(days);
        }


        /// <summary>
        /// 获得指定会员的排名信息。
        /// </summary>
        /// <param name="memberNo">会员编号。</param>
        /// <returns>TranslateModel对象。</returns>
        ///修改日期          修改人              修改内容                           版本号
        ///2008.08.07		 Snail				 创建该方法                         1.0.0.0
        [WebMethod]
        public TranslateTopic GetMemberRank(string memberNo) {
            return new TranslateSystem().GetMemberRank(memberNo);
        }

    }
}